SQL код скопирован в буфер обмена
EN PT FR

Урок 1.3: Концепции реляционных баз данных

В предыдущем уроке мы представили концепцию баз данных. Теперь мы глубже погрузимся в основные компоненты реляционных баз данных, которые имеют основополагающее значение для понимания того, как данные организованы и доступны с помощью SQL.

DBMS overview

Таблицы, столбцы и строки

Реляционные базы данных организуют данные в структуры, называемые таблицами. Представьте таблицу как электронную таблицу:

  • Таблица: Набор связанных данных. Например, таблица может хранить информацию о клиентах, продуктах или заказах.
  • Столбец: Вертикальный набор данных в таблице. Каждый столбец представляет конкретный атрибут или характеристику данных. Например, в таблице "Клиенты" столбцы могут быть "CustomerID", "FirstName", "LastName" и "Email".
  • Строка: Горизонтальный набор данных в таблице. Каждая строка представляет один экземпляр или запись данных. В таблице "Клиенты" каждая строка будет представлять одного клиента.

Пример:

Давайте визуализируем простую таблицу "Клиенты":

CustomerIDFirstNameLastNameEmail
1JohnDoejohn.doe@example.com
2JaneSmithjane.smith@example.com
3DavidLeedavid.lee@example.com
  • Вся структура - это таблица под названием "Клиенты".
  • "CustomerID", "FirstName", "LastName" и "Email" - это столбцы.
  • Каждая строка (например, "1 | John | Doe | john.doe@example.com") - это строка.

Ключи: Обеспечение целостности данных

Ключи - это важнейшая концепция в реляционных базах данных. Они используются для установления связей между таблицами и обеспечения целостности данных. Вот основные типы ключей:

Первичный ключ (Primary Key)

  • Первичный ключ - это столбец (или набор столбцов), который однозначно идентифицирует каждую строку в таблице.
  • Характеристики первичного ключа:
    • Уникальность: Никакие две строки не могут иметь одинаковое значение первичного ключа.
    • Отсутствие NULL: Столбец первичного ключа не может содержать значения NULL.
  • В нашей таблице "Клиенты" "CustomerID" является хорошим кандидатом на роль первичного ключа, потому что у каждого клиента уникальный идентификатор, и он не может быть пустым.

Внешний ключ (Foreign Key)

  • Внешний ключ - это столбец (или набор столбцов) в одной таблице, который ссылается на первичный ключ в другой таблице.
  • Внешние ключи устанавливают связи между таблицами.
  • Например, если у нас есть таблица "Заказы", она может иметь столбец "CustomerID", который является внешним ключом, ссылающимся на "CustomerID" в таблице "Клиенты". Это связывает каждый заказ с клиентом, который его разместил.

Уникальный ключ (Unique Key)

  • Уникальный ключ - это столбец (или набор столбцов), который гарантирует, что значения в столбце (столбцах) являются уникальными для всех строк в таблице.
  • Отличие от первичного ключа:
    • В таблице может быть только один первичный ключ, но может быть несколько уникальных ключей.
    • Столбцы уникального ключа могут допускать значения NULL (хотя реализации немного различаются).
  • В нашей таблице "Клиенты" "Email" может быть уникальным ключом, гарантируя, что у каждого клиента уникальный адрес электронной почты.

ACID: Надежные транзакции в базах данных

При работе с реляционными базами данных еще одной ключевой концепцией является модель ACID. ACID определяет свойства, которые делают транзакции безопасными и надежными.

Транзакция — это группа операций, рассматриваемая как единая единица работы. Например, перевод денег между двумя банковскими счетами обычно включает как минимум две операции:

  1. Списать деньги со счета A.
  2. Зачислить деньги на счет B.

Оба шага должны выполниться вместе, иначе не должен примениться ни один.

ACID означает:

  • Atomicity (Атомарность): Транзакция выполняется по принципу «все или ничего». Если один шаг завершился ошибкой, вся транзакция откатывается.
  • Consistency (Согласованность): Транзакция должна переводить базу данных из одного корректного состояния в другое, сохраняя все заданные правила и ограничения.
  • Isolation (Изолированность): Параллельные транзакции не должны мешать друг другу так, чтобы это приводило к некорректным результатам.
  • Durability (Долговечность): После фиксации транзакции ее изменения сохраняются навсегда, даже при отключении питания или сбое системы.

Эти свойства критически важны для реальных систем, таких как банковские сервисы, электронная коммерция и управление складом, где частичные или некорректные изменения могут привести к серьезным проблемам.

Важность этих концепций

Понимание таблиц, столбцов, строк и ключей имеет основополагающее значение для работы с реляционными базами данных.

  • Они определяют, как данные структурированы и организованы.
  • Они позволяют нам эффективно запрашивать и извлекать конкретную информацию.
  • Ключи обеспечивают целостность данных и устанавливают связи между различными наборами данных.
  • Свойства ACID гарантируют, что изменения данных остаются корректными и надежными даже при сбоях и параллельном доступе.

В следующих уроках мы будем опираться на эти концепции, изучая, как использовать SQL для взаимодействия с реляционными базами данных.